package com.example.leetcode.problem.isuniquelcci;

import org.springframework.util.Assert;

public class StringToUrlLcci {

    /**
     * 面试题 01.03. URL化
     * URL化。编写一种方法，将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符，并且知道字符串的“真实”长度。（注：用Java实现的话，请使用字符数组实现，以便直接在数组上操作。）
     * <p>
     * 示例1:
     * <p>
     * 输入："Mr John Smith    ", 13
     * 输出："Mr%20John%20Smith"
     * 示例2:
     * <p>
     * 输入："               ", 5
     * 输出："%20%20%20%20%20"
     * 提示：
     * <p>
     * 字符串长度在[0, 500000]范围内。
     *
     * @param args
     */
    public static void main(String[] args) {
        StringToUrlLcci test = new StringToUrlLcci();
        Assert.isTrue("Mr%20John%20Smith".equals(test.replaceSpaces("Mr John Smith    ", 13)));
        Assert.isTrue("%20%20%20%20%20".equals(test.replaceSpaces("               ", 5)));
    }

    /**
     * 一、依次遍历判断
     * 注意：循环结束条件是小于length，而不是S的长度
     *
     * @param S
     * @param length
     * @return
     */
    public String replaceSpaces(String S, int length) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < length; i++) {
            if (S.charAt(i) == ' ') {
                sb.append("%20");
            } else {
                sb.append(S.charAt(i));
            }
        }
        return sb.toString();
    }

//    作者：songlone
//    链接：https://leetcode-cn.com/problems/string-to-url-lcci/solution/javaliang-chong-jie-fa-by-songjilong-vip/
//    来源：力扣（LeetCode）
//    著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
}
